package com.erp.erp_entitys.CustomerComplaint;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 客诉记录表
 */
@ApiModel(value = "客诉记录实体类")
public class CustomerComplaintEntity implements Serializable {
    @ApiModelProperty(value = "id")
    private Integer id;

    /**
     * 客户名称
     */
    @ApiModelProperty(value = "客户名称")
    private String customerName;

    /**
     * 客诉单号
     */
    @ApiModelProperty(value = "客诉单号")
//    @NotEmpty(message = "客诉单号不可为空")
    private String oddNumber;

    /**
     * 创建日期
     */
    @ApiModelProperty(value = "创建日期")
    private Date createTime;

    /**
     * 业务员
     */
    @ApiModelProperty(value = "业务员")
    private String salesman;

    /**
     * 操作员
     */
    @ApiModelProperty(value = "操作员")
    private String executor;

    /**
     * 开票银行
     */
    @ApiModelProperty(value = "开票银行")
    private String issuingBank;

    /**
     * 制单公司
     */
    @ApiModelProperty(value = "制单公司")
    private String complaintUnit;

    /**
     * 箱体状态
     * 1：草稿
     * 2：待批
     * 3：已批
     * 4：完成
     * 5：垃圾
     */
    @ApiModelProperty(value = "箱体状态")
    private String boxStatus;
    /**
     * 客诉成立否
     */
    @ApiModelProperty(value = "客诉成立否")
    private String isEstablish;
    /**
     * 责任方
     */
    @ApiModelProperty(value = "责任方")
    private String responsibleParty;
    /**
     * 币种
     */
    @ApiModelProperty(value = "币种")
    private String currency;
    /**
     * 客户扣款金额
     */
    @ApiModelProperty(value = "客户扣款金额")
    private BigDecimal clientDeductionPrice;
    /**
     * 供应商扣款金额（人民币）
     */
    @ApiModelProperty(value = "供应商扣款金额（人民币）")
    private BigDecimal supplierDeductionPrice;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * 产品列表
     */
    @ApiModelProperty(value = "产品列表")
    private List<CustomerComplaintProductEntity> productList;
    /**
     * 附件列表
     */
    @ApiModelProperty(value = "附件列表")
    private List<CustomerComplaintFileEntity> fileList;

    /**
     * 创建时间段
     */
    private Date startCreateTime;
    private Date endCreateTime;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getOddNumber() {
        return oddNumber;
    }

    public void setOddNumber(String oddNumber) {
        this.oddNumber = oddNumber;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getSalesman() {
        return salesman;
    }

    public void setSalesman(String salesman) {
        this.salesman = salesman;
    }

    public String getExecutor() {
        return executor;
    }

    public void setExecutor(String executor) {
        this.executor = executor;
    }

    public String getIssuingBank() {
        return issuingBank;
    }

    public void setIssuingBank(String issuingBank) {
        this.issuingBank = issuingBank;
    }

    public String getComplaintUnit() {
        return complaintUnit;
    }

    public void setComplaintUnit(String complaintUnit) {
        this.complaintUnit = complaintUnit;
    }

    public String getBoxStatus() {
        return boxStatus;
    }

    public void setBoxStatus(String boxStatus) {
        this.boxStatus = boxStatus;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<CustomerComplaintProductEntity> getProductList() {
        return productList;
    }

    public void setProductList(List<CustomerComplaintProductEntity> productList) {
        this.productList = productList;
    }

    public List<CustomerComplaintFileEntity> getFileList() {
        return fileList;
    }

    public void setFileList(List<CustomerComplaintFileEntity> fileList) {
        this.fileList = fileList;
    }

    public Date getStartCreateTime() {
        return startCreateTime;
    }

    public void setStartCreateTime(Date startCreateTime) {
        this.startCreateTime = startCreateTime;
    }

    public Date getEndCreateTime() {
        return endCreateTime;
    }

    public void setEndCreateTime(Date endCreateTime) {
        this.endCreateTime = endCreateTime;
    }

    public String getIsEstablish() {
        return isEstablish;
    }

    public void setIsEstablish(String isEstablish) {
        this.isEstablish = isEstablish;
    }

    public String getResponsibleParty() {
        return responsibleParty;
    }

    public void setResponsibleParty(String responsibleParty) {
        this.responsibleParty = responsibleParty;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public BigDecimal getClientDeductionPrice() {
        return clientDeductionPrice;
    }

    public void setClientDeductionPrice(BigDecimal clientDeductionPrice) {
        this.clientDeductionPrice = clientDeductionPrice;
    }

    public BigDecimal getSupplierDeductionPrice() {
        return supplierDeductionPrice;
    }

    public void setSupplierDeductionPrice(BigDecimal supplierDeductionPrice) {
        this.supplierDeductionPrice = supplierDeductionPrice;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("{");
        sb.append(" \"id\":").append(id);
        sb.append(", \"customerName\":\"").append(customerName).append('\"');
        sb.append(", \"oddNumber\":\"").append(oddNumber).append('\"');
        sb.append(", \"createTime\":\"").append(createTime).append('\"');
        sb.append(", \"salesman\":\"").append(salesman).append('\"');
        sb.append(", \"executor\":\"").append(executor).append('\"');
        sb.append(", \"issuingBank\":\"").append(issuingBank).append('\"');
        sb.append(", \"complaintUnit\":\"").append(complaintUnit).append('\"');
        sb.append(", \"boxStatus\":\"").append(boxStatus).append('\"');
        sb.append(", \"isEstablish\":\"").append(isEstablish).append('\"');
        sb.append(", \"responsibleParty\":\"").append(responsibleParty).append('\"');
        sb.append(", \"currency\":\"").append(currency).append('\"');
        sb.append(", \"clientDeductionPrice\":").append(clientDeductionPrice);
        sb.append(", \"supplierDeductionPrice\":").append(supplierDeductionPrice);
        sb.append(", \"remark\":\"").append(remark).append('\"');
        sb.append(", \"productList\":").append(productList);
        sb.append(", \"fileList\":").append(fileList);
        sb.append('}');
        return sb.toString();
    }
}